1,989 research outputs found
Logic Programming Applications: What Are the Abstractions and Implementations?
This article presents an overview of applications of logic programming,
classifying them based on the abstractions and implementations of logic
languages that support the applications. The three key abstractions are join,
recursion, and constraint. Their essential implementations are for-loops, fixed
points, and backtracking, respectively. The corresponding kinds of applications
are database queries, inductive analysis, and combinatorial search,
respectively. We also discuss language extensions and programming paradigms,
summarize example application problems by application areas, and touch on
example systems that support variants of the abstractions with different
implementations
High-level Cryptographic Abstractions
The interfaces exposed by commonly used cryptographic libraries are clumsy,
complicated, and assume an understanding of cryptographic algorithms. The
challenge is to design high-level abstractions that require minimum knowledge
and effort to use while also allowing maximum control when needed.
This paper proposes such high-level abstractions consisting of simple
cryptographic primitives and full declarative configuration. These abstractions
can be implemented on top of any cryptographic library in any language. We have
implemented these abstractions in Python, and used them to write a wide variety
of well-known security protocols, including Signal, Kerberos, and TLS.
We show that programs using our abstractions are much smaller and easier to
write than using low-level libraries, where size of security protocols
implemented is reduced by about a third on average. We show our implementation
incurs a small overhead, less than 5 microseconds for shared key operations and
less than 341 microseconds (< 1%) for public key operations. We also show our
abstractions are safe against main types of cryptographic misuse reported in
the literature
Deletion of diacylglycerol-responsive TRPC genes attenuates diabetic nephropathy by inhibiting activation of the TGFβ1 signaling pathway
TRPC6 plays a critical role in proteinuric kidney diseases, and TRPC3 is involved in tubulointerstitialdamage and renal fibrosis in obstructed kidneys. Podocyte loss is a characteristic event in diabetic nephropathy(DN). The aim of this study was to examine whether deletion of the closely related diacylglycerol (DAG)-responsiveTRPCs in mice (TRPC3/6/7-/-) affects diabetes-induced renal dysfunction and podocyte loss. We compared urinevolume, kidney hypertrophy, glomerular enlargement, albuminuria and podocyte loss between wild type (WT) andTRPC3/6/7-/- diabetic mice. Finally, we examined whether the TGFβ1 signaling pathway is changed in diabetic WTand TRPC3/6/7-/- mice. TRPC6 protein in the renal cortex was increased in WT diabetic mice. High glucose (HG)treatment increased TRPC6 expression in human podocytes. TRPC3 protein, however, was not altered in eitherdiabetic mice or HG-treated human podocytes. Although diabetic WT and TRPC3/6/7-/- mice had similar levels ofhyperglycemia, the TRPC3/6/7-/- diabetic mice showed less polyuria, kidney hypertrophy, glomerular enlargement,albuminuria, and had lost less podocytes compared with WT diabetic mice. In addition, we observed decreasedexpression of anti-apoptotic Bcl2 and increased expression of pro-apoptotic cleaved caspase 3 in WT diabetic mice,but such changes were not significant in TRPC3/6/7-/- diabetic mice. Western blot and immunohistochemistry revealedthat TGFβ1, p-Smad2/3, and fibronectin were upregulated in WT diabetic mice; however, expression of thesesignaling molecules was not changed in TRPC3/6/7-/- diabetic mice. In conclusion, deletion of DAG-responsiveTRPCs attenuates diabetic renal injury via inhibiting the upregulation of TGFβ1 signaling in diabetic kidneys.Fil: Liu, Benju. Huazhong University of Science and Technology; ChinaFil: He, Xiju. Huazhong University of Science and Technology; ChinaFil: Li, Shoutian. Yangtze University; ChinaFil: Xu, Benke. Yangtze University; ChinaFil: Birnbaumer, Lutz. Pontificia Universidad Católica Argentina "Santa María de los Buenos Aires". Instituto de Investigaciones Biomédicas. Consejo Nacional de Investigaciones Científicas y Técnicas. Oficina de Coordinación Administrativa Houssay. Instituto de Investigaciones Biomédicas; ArgentinaFil: Liao, Yanhong. Huazhong University of Science and Technology; Chin
Incremental Computation for Transformational Software Development
Given a program f and an input change \Phi, we wish to obtain an incremental program that computes f(x \Phi y) efficiently by making use of the value of f(x), the intermediate results computed in computing f(x), and auxiliary information about x that can be inexpensively maintained. Obtaining such incremental programs is an essential part of the transformational-programming approach to software development and enhancement. This paper presents a systematic approach that discovers a general class of useful auxiliary information, combines it with useful intermediate results, and obtains an efficient incremental program that uses and maintains these intermediate results and auxiliary information. We give a number of examples from list processing, VLSI circuit design, image processing, etc. 1 Introduction Software engineering is the systematic approach to the development, operation, maintenance, and retirement of software [1]. The transformational-programming approach to software engine..
- …